package org.inspiration.dudu.web.service.user;

import org.inspiration.dudu.user.model.dto.UserFavoriteDTO;

import java.util.List;
import java.util.Map;

/**
 * 用户收藏服务接口
 * 提供用户对内容的收藏、删除和查询功能
 */
public interface UserFavoriteFacadeService {
    /**
     * 创建用户收藏
     * 
     * @param userFavoriteDTO 用户收藏数据传输对象
     */
    void createUserFavorite(UserFavoriteDTO userFavoriteDTO);

    /**
     * 删除用户收藏
     * 
     * @param userFavoriteDTO 用户收藏数据传输对象
     */
    void deleteUserFavorite(UserFavoriteDTO userFavoriteDTO);

    /**
     * 检查用户是否收藏了特定内容
     * 
     * @param userId 用户ID
     * @param contentId 内容ID
     * @return 如果用户收藏了该内容，则返回true，否则返回false
     */
    Boolean isFavorite(Long userId, String contentId);

    /**
     * 获取用户的收藏内容
     * 
     * @param userId 用户ID
     * @param favoriteFolderId 收藏夹ID
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 收藏内容的列表
     */
    List<Map<String, Object>> getFavoriteContents(Long userId, Long favoriteFolderId, Integer pageNum, Integer pageSize);

    /**
     * 检查用户的收藏夹是否包含特定内容
     * 
     * @param userId 用户ID
     * @param contentId 内容ID
     * @param folderId 收藏夹ID
     * @return 如果收藏夹中包含该内容，则返回true，否则返回false
     */
    Boolean isFolderFavorite(Long userId, String contentId, Long folderId);
}
